package com.cxso.example.domain.wlpt.waybill;

import com.cxso.example.enums.wlpt.DeductQuantityMethodEnum;
import com.cxso.example.enums.wlpt.DetailMethodEnum;
import com.cxso.example.enums.wlpt.PayStatusEnum;
import com.cxso.example.enums.wlpt.SettlementMethodEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Setter
@Getter
@Accessors(chain = true)
@Schema(description = "自定义费用")
public class ApiWaybillFeeDetailDomain {

    @Schema(description = "现金运费")
    private BigDecimal cashTotalAmount;

    @Schema(description = "结算吨重")
    private SettlementMethodEnum settlementMethod;

    @Schema(description = "运输单价(原)")
    private BigDecimal feeUnit;

    @Schema(description = "运输单价")
    private BigDecimal finalFeeUnit;

    @Schema(description = "扣杂")
    private BigDecimal deductQuantity;

    @Schema(description = "扣杂计算方式")
    private DeductQuantityMethodEnum deductQuantityMethod;

    @Schema(description = "合理亏损,自动亏损必填")
    private BigDecimal reasonableLosses;

    @Schema(description = "合理亏损单位,自动亏损必填")
    private DetailMethodEnum reasonableMethod;

    @Schema(description = "货物单价,自动亏损必填")
    private BigDecimal goodsUnitPrice;

    @Schema(description = "计价单位")
    private String detailMethod;

    @Schema(description = "运输单价")
    private BigDecimal transportUnit;

    @Schema(description = "总金额")
    private BigDecimal totalAmount;

    @Schema(description = "运输单价（司机）")
    private BigDecimal driverTransportUnit;

    @Schema(description = "总金额（司机）")
    private BigDecimal driverTotalAmount;

    @Schema(description = "已付金额")
    private BigDecimal paidAmount;

    @Schema(description = "未付金额")
    private BigDecimal unpaidAmount;

    @Schema(description = "税额（服务费）")
    private BigDecimal taxAmount;

    @Schema(description = "已付税额")
    private BigDecimal paidTaxAmount;

    @Schema(description = "已付总额(佣金+运费+服务费)")
    private BigDecimal paidTotalAmount;

    @Schema(description = "支付税率")
    private BigDecimal taxRate;

    @Schema(description = "司机所得运费")
    private BigDecimal driverAmount;

    @Schema(description = "支付状态")
    private PayStatusEnum payStatus;

    @Schema(description = "支付时间")
    private Date payTime;

    @Schema(description = "费用明细")
    private List<ApiWaybillFeeItemDetailDomain> feeItemDetailList;

}
